/****************************************************************************
*					StructureLearningFactory
*
*	Description:	Class for creating objects of class StructureLearning by 
*					name or ID of the reqired subclass
*
****************************************************************************/

#ifndef _StructureLearningFactory_H
#define _StructureLearningFactory_H

#include <stdio.h>
#include <string>
#include <vector>
#include <algorithm>
#include <stdlib.h>
#include "StructureLearning.h"

class StructureLearningFactory {
  private:

  protected:
 
  public:

	// Class constructor
    StructureLearningFactory(void);
  
	// Class destructor
	~StructureLearningFactory(void);
	
	// Creates ParameterLearning object of class with a given ID
	StructureLearning* createObjectByID(const signed int id);

	// Creates ParameterLearning object of class with a given Name
	StructureLearning* createObjectByName(const std::string name);

};

#endif // _StructureLearningFactory_H
